﻿namespace HiTeachers.Interfaces
{
    public interface IDaoFactory
    {
        //T GetDao<T>(string id) where T : IDao;
        ISubjectDao GetSubjectDao();
        //<component id="subject" type="HiTeachers.Data.SubjectDao, HiTeachers.Data"
        //       service="HiTeachers.Interfaces.ISubjectDao, HiTeachers.Interfaces"/>

        ILoggerEmailDao GetLoggerEmailDao();
        //<component id="loggerEmail" type="HiTeachers.Data.LoggerEmailDao, HiTeachers.Data"
        //           service="HiTeachers.Interfaces.ILoggerEmailDao, HiTeachers.Interfaces"/>

        INewDao GetNewDao();
        //<component id="news" type="HiTeachers.Data.NewDao, HiTeachers.Data"
        //           service="HiTeachers.Interfaces.INewDao, HiTeachers.Interfaces"/>

        IStaticPageDao GetStaticPageDao();
        //<component id="staticPage" type="HiTeachers.Data.StaticPageDao, HiTeachers.Data"
        //           service="HiTeachers.Interfaces.IStaticPageDao, HiTeachers.Interfaces"/>

        IStudentFeedbackDao GetStudentFeedbackDao();
        //<component id="studentFeedback" type="HiTeachers.Data.StudentFeedbackDao, HiTeachers.Data"
        //           service="HiTeachers.Interfaces.IStudentFeedbackDao, HiTeachers.Interfaces"/>

        IStudentRequestDao GetStudentRequestDao();
        //<component id="studentRequest" type="HiTeachers.Data.StudentRequestDao, HiTeachers.Data"
        //           service="HiTeachers.Interfaces.IStudentRequestDao, HiTeachers.Interfaces"/>

        ITeacherDao GetTeacherDao();
        //<component id="teacher" type="HiTeachers.Data.TeacherDao, HiTeachers.Data"
        //           service="HiTeachers.Interfaces.ITeacherDao, HiTeachers.Interfaces"/>

        IFeeConfigDao GetFeeConfigDao();
        //<component id="feeConfig" type="HiTeachers.Data.FeeConfigDao, HiTeachers.Data"
        //           service="HiTeachers.Interfaces.IFeeConfigDao, HiTeachers.Interfaces"/>

        IContactedRequestDao GetContactedRequestDao();
        //<component id="contactedRequest" type="HiTeachers.Data.ContactedRequestDao, HiTeachers.Data"
        //           service="HiTeachers.Interfaces.IContactedRequestDao, HiTeachers.Interfaces"/>

        IPaymentInfoDao GetPaymentInfoDao();

        ISiteConfigDao GetSiteConfigDao();
    }
}
